package es.uc3m.setichat.format;

import java.text.SimpleDateFormat;
import java.util.ArrayList;

import es.uc3m.setichat.R;
import es.uc3m.setichat.db.SaveDataContacts;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class ViewConversations extends ArrayAdapter<Conversation> {
	
	protected Activity context;
    protected ArrayList <Conversation> datos;

    public ViewConversations(Activity context, ArrayList <Conversation> datos) {
        super(context, R.layout.conversation_raw, datos);
        this.context = context;
        this.datos=datos;
    }

    static class ViewHolder {
        TextView conversacionId;
        TextView conversacionMensaje;
        TextView conversacionFecha;
    }
    
    @Override
    public View getView(int position, View convertView, final ViewGroup parent) {

        View item = convertView;
        final ViewHolder holder;

        if(item == null) {
            LayoutInflater inflater = context.getLayoutInflater();
            item = inflater.inflate(R.layout.conversation_raw, null);
            holder = new ViewHolder();
            
            holder.conversacionId = (TextView)item.findViewById(R.id.ConversacionId);
            holder.conversacionMensaje = (TextView)item.findViewById(R.id.ConversacionMensaje);
            holder.conversacionFecha = (TextView)item.findViewById(R.id.ConversacionFecha);           

            item.setTag(holder);
        }
        else {
            holder = (ViewHolder)item.getTag();
        }

        Conversation conversation = datos.get(position);
        
        String mobile = conversation.getMobile();
        String nombre = mobile;
		SaveDataContacts usdbh = new SaveDataContacts(context, SaveDataContacts.DBNAME, null, 1);	
		SQLiteDatabase db = usdbh.getReadableDatabase();
		if(db!=null){			
			Cursor cur = db.rawQuery("SELECT nick FROM contactos WHERE mobile='" + mobile + "'", null);			
			if(cur.getCount()>0){
				if(cur.moveToNext()){
					nombre=cur.getString(cur.getColumnIndex("nick"));
				}				
			}
			cur.close();
			db.close();
		}
        
        holder.conversacionId.setText(nombre);
        holder.conversacionMensaje.setText(conversation.getLastMessage());
        
        SimpleDateFormat sdf = new SimpleDateFormat ("dd-MM-yyyy, hh:mm");	
		String fechaString = sdf.format(conversation.getLastDate());        
        
        holder.conversacionFecha.setText(fechaString);

        return(item);
    }

    public void anadirDatos(ArrayList<Conversation> datos) {
        this.datos.addAll(datos);
    }
}
